﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Fated.Character.ChartGeneration {
    /// <summary>
    /// Takes to Moon/Mercury
    /// </summary>
    class Neptune : Planet {
        public static void generateStats(out float[] amount, out int[] affected,
           PlanetNames p, Aspect.AspectType a) {

            amount = new float[] { 0, 0, 0 };
            affected = new int[] { (int)Chart.Stats.Mind, (int)Chart.Stats.Body, (int)Chart.Stats.Body };

            if (p == PlanetNames.Moon) {
                affected[0] = (int)Chart.Stats.Spirit;
                affected[1] = (int)Chart.Stats.Mind;
                affected[2] = (int)Chart.Stats.Mind;
            }
            if (p == PlanetNames.Mercury) {
                affected[0] = (int)Chart.Stats.Mind;
                affected[1] = (int)Chart.Stats.Spirit;
                affected[2] = (int)Chart.Stats.Spirit;
            }
            if (p == PlanetNames.Venus) {
                affected[0] = (int)Chart.Stats.Social;
                affected[1] = (int)Chart.Stats.Spirit;
                affected[2] = (int)Chart.Stats.Mind;
            }
            if (p == PlanetNames.Mars) {
                affected[0] = (int)Chart.Stats.Body;
                affected[1] = (int)Chart.Stats.Spirit;
                affected[2] = (int)Chart.Stats.Mind;
            }

            if (a == Aspect.AspectType.Trine) {
                amount[0] = largeDown;
                amount[1] = smallUp;
                amount[2] = smallUp;
            }
            if (a == Aspect.AspectType.Sextile) {
                amount[0] = smallDown;
                if (yang) {
                    amount[1] = 0;
                    amount[2] = smallUp;
                } else {
                    amount[1] = smallUp;
                    amount[2] = 0;
                }
            }
            if (a == Aspect.AspectType.Conjunct) {
                amount[0] = smallDown;
                if (!yang) {
                    amount[1] = 0;
                    amount[2] = smallUp;
                } else {
                    amount[1] = smallUp;
                    amount[2] = 0;
                }
            }
            if (a == Aspect.AspectType.Square) {
                amount[0] = smallUp;
                if (yang) {
                    amount[1] = 0;
                    amount[2] = smallDown;
                } else {
                    amount[1] = smallDown;
                    amount[2] = 0;
                }
            }
            if (a == Aspect.AspectType.Opposite) {
                amount[0] = largeUp;
                amount[1] = smallDown;
                amount[2] = smallDown;
            }
        }
    }
}
